package com.gopay.common.domain.report;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;


/**
 * The persistent class for the REPORT_CONSOLE_TRANS_QUERY database table.
 * 
 */
@Entity
@Table(name="REPORT_CONSOLE_TRANS_QUERY")
public class ReportConsoleTransQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="GOPAY_ORDER_ID", unique=true, nullable=false, length=30)
    private String gopayOrderId;

    @Column(name="CREATED_TS", nullable=false)
    private Date createdTs;

    @Column(name="CUST_ORDER_ID")
    private String custOrderId;

    @Column(name="GOPAY_INT_TXN_CD", nullable=false, length=6)
    private String gopayIntTxnCd;

    @Column(name="GOPAY_TXN_TM", nullable=false)
    private Date gopayTxnTm;

    @Column(name="HANDLE_STA_CD", length=2)
    private String handleStaCd;

    @Column(name="LAST_UPD_TS")
    private Date lastUpdTs;

    @Column(name="ORDER_STLM_TM")
    private Date orderStlmTm;

    @Column(name="PAY_ACCT", length=30)
    private String payAcct;

    @Column(name="PAY_ACCT_PROD_CD", length=10)
    private String payAcctProdCd;

    @Column(name="PAY_BANK_NAME", length=100)
    private String payBankName;

    @Column(name="PAY_CHANNEL", length=2)
    private String payChannel;

    @Column(name="PAY_CUST_EMAIL", length=50)
    private String payCustEmail;

    @Column(name="PAY_CUST_NAME", length=100)
    private String payCustName;

    @Column(name="REAL_FEE_AMT", nullable=false, precision=20, scale=2)
    private BigDecimal realFeeAmt;

    @Column(name="RECV_ACCT", length=30)
    private String recvAcct;

    @Column(name="RECV_BANK_NAME", length=100)
    private String recvBankName;

    @Column(name="RECV_BANK_ORDER_ID", length=30)
    private String recvBankOrderId;

    @Column(name="RECV_CUST_EMAIL", length=50)
    private String recvCustEmail;

    @Column(name="RECV_CUST_NAME", length=100)
    private String recvCustName;

    @Column(name="SETTLE_TYPE", length=2)
    private String settleType;

    @Column(name="TERMINAL_SOURCE", length=2)
    private String terminalSource;

    @Column(name="TXN_AMT", nullable=false, precision=20, scale=2)
    private BigDecimal txnAmt;

    @Column(name="TXN_PLACE", length=200)
    private String txnPlace;

    @Column(name="TXN_STA_CD", nullable=false, precision=5)
    private int txnStaCd;

    @Column(name="\"VERSION\"", nullable=false, precision=22)
    private int version;
    
    
    @Column(name="REMARK", length=200)
    private String remark;

	@Column(name="REFUND_FEE_AMT", nullable=false, precision=20, scale=2)
    private BigDecimal refundFeeAmt;
    
    @Column(name="USER_SOURCE", length=3)
    private String userSource;
    
    @Column(name="TOTAL_ORDER_AMT", nullable=true, precision=20, scale=2)
    private BigDecimal totalOrderAmt;  

    //系统加固-增加结算金额和手续费承担方字段-jiaoshuai
    @Column(name="SETTLE_AMT", nullable = true, precision=20, scale=2)
    private BigDecimal settleAmt;   //结算金额
    
    @Column(name ="ORDER_FEE_PAYER", nullable = true, length = 2)
    private String orderFeePayer;   //手续费承担方
    @Column(name = "OLD_PAY_CHANNEL")
    private String oldPayChannel;
    
    //交易批次号
    @Column(name = "TRANS_BATCH_NO")
    private String transBatchNo;

    public BigDecimal getSettleAmt() {
        return settleAmt;
    }

    public void setSettleAmt(BigDecimal settleAmt) {
        this.settleAmt = settleAmt;
    }
    
    public String getOrderFeePayer() {
        return this.orderFeePayer;
    }

    public void setOrderFeePayer(String orderFeePayer) {
        this.orderFeePayer = orderFeePayer;
    }
    
    public BigDecimal getTotalOrderAmt() {
		return totalOrderAmt;
	}

	public void setTotalOrderAmt(BigDecimal totalOrderAmt) {
		this.totalOrderAmt = totalOrderAmt;
	}

	public BigDecimal getRefundFeeAmt() {
    	return refundFeeAmt;
    }
    
    public void setRefundFeeAmt(BigDecimal refundFeeAmt) {
    	this.refundFeeAmt = refundFeeAmt;
    }
    
    public String getUserSource() {
		return userSource;
	}

	public void setUserSource(String userSource) {
		this.userSource = userSource;
	}

	public ReportConsoleTransQuery() {
    }
    
    public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getGopayOrderId() {
        return this.gopayOrderId;
    }

    public void setGopayOrderId(String gopayOrderId) {
        this.gopayOrderId = gopayOrderId;
    }

    public Date getCreatedTs() {
        return this.createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    public String getCustOrderId() {
        return this.custOrderId;
    }

    public void setCustOrderId(String custOrderId) {
        this.custOrderId = custOrderId;
    }

    public String getGopayIntTxnCd() {
        return this.gopayIntTxnCd;
    }

    public void setGopayIntTxnCd(String gopayIntTxnCd) {
        this.gopayIntTxnCd = gopayIntTxnCd;
    }

    public Date getGopayTxnTm() {
        return this.gopayTxnTm;
    }

    public void setGopayTxnTm(Date gopayTxnTm) {
        this.gopayTxnTm = gopayTxnTm;
    }

    public String getHandleStaCd() {
        return this.handleStaCd;
    }

    public void setHandleStaCd(String handleStaCd) {
        this.handleStaCd = handleStaCd;
    }

    public Date getLastUpdTs() {
        return this.lastUpdTs;
    }

    public void setLastUpdTs(Date lastUpdTs) {
        this.lastUpdTs = lastUpdTs;
    }

    public Date getOrderStlmTm() {
        return this.orderStlmTm;
    }

    public void setOrderStlmTm(Date orderStlmTm) {
        this.orderStlmTm = orderStlmTm;
    }

    public String getPayAcct() {
        return this.payAcct;
    }

    public void setPayAcct(String payAcct) {
        this.payAcct = payAcct;
    }

    public String getPayAcctProdCd() {
        return this.payAcctProdCd;
    }

    public void setPayAcctProdCd(String payAcctProdCd) {
        this.payAcctProdCd = payAcctProdCd;
    }

    public String getPayBankName() {
        return this.payBankName;
    }

    public void setPayBankName(String payBankName) {
        this.payBankName = payBankName;
    }

    public String getPayChannel() {
        return this.payChannel;
    }

    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel;
    }

    public String getPayCustEmail() {
        return this.payCustEmail;
    }

    public void setPayCustEmail(String payCustEmail) {
        this.payCustEmail = payCustEmail;
    }

    public String getPayCustName() {
        return this.payCustName;
    }

    public void setPayCustName(String payCustName) {
        this.payCustName = payCustName;
    }

    public BigDecimal getRealFeeAmt() {
        return this.realFeeAmt;
    }

    public void setRealFeeAmt(BigDecimal realFeeAmt) {
        this.realFeeAmt = realFeeAmt;
    }

    public String getRecvAcct() {
        return this.recvAcct;
    }

    public void setRecvAcct(String recvAcct) {
        this.recvAcct = recvAcct;
    }

    public String getRecvBankName() {
        return this.recvBankName;
    }

    public void setRecvBankName(String recvBankName) {
        this.recvBankName = recvBankName;
    }

    public String getRecvBankOrderId() {
        return this.recvBankOrderId;
    }

    public void setRecvBankOrderId(String recvBankOrderId) {
        this.recvBankOrderId = recvBankOrderId;
    }

    public String getRecvCustEmail() {
        return this.recvCustEmail;
    }

    public void setRecvCustEmail(String recvCustEmail) {
        this.recvCustEmail = recvCustEmail;
    }

    public String getRecvCustName() {
        return this.recvCustName;
    }

    public void setRecvCustName(String recvCustName) {
        this.recvCustName = recvCustName;
    }

    public String getSettleType() {
        return this.settleType;
    }

    public void setSettleType(String settleType) {
        this.settleType = settleType;
    }

    public String getTerminalSource() {
        return this.terminalSource;
    }

    public void setTerminalSource(String terminalSource) {
        this.terminalSource = terminalSource;
    }

    public BigDecimal getTxnAmt() {
        return this.txnAmt;
    }

    public void setTxnAmt(BigDecimal txnAmt) {
        this.txnAmt = txnAmt;
    }

    public String getTxnPlace() {
        return this.txnPlace;
    }

    public void setTxnPlace(String txnPlace) {
        this.txnPlace = txnPlace;
    }

    public int getTxnStaCd() {
        return this.txnStaCd;
    }

    public void setTxnStaCd(int txnStaCd) {
        this.txnStaCd = txnStaCd;
    }

    public int getVersion() {
        return this.version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public String getOldPayChannel() {
        return oldPayChannel;
    }

    public void setOldPayChannel(String oldPayChannel) {
        this.oldPayChannel = oldPayChannel;
    }

	public String getTransBatchNo() {
		return transBatchNo;
	}

	public void setTransBatchNo(String transBatchNo) {
		this.transBatchNo = transBatchNo;
	}


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ReportConsoleTransQuery that = (ReportConsoleTransQuery) o;
        return txnStaCd == that.txnStaCd &&
                version == that.version &&
                Objects.equals(gopayOrderId, that.gopayOrderId) &&
                Objects.equals(createdTs, that.createdTs) &&
                Objects.equals(custOrderId, that.custOrderId) &&
                Objects.equals(gopayIntTxnCd, that.gopayIntTxnCd) &&
                Objects.equals(gopayTxnTm, that.gopayTxnTm) &&
                Objects.equals(handleStaCd, that.handleStaCd) &&
                Objects.equals(lastUpdTs, that.lastUpdTs) &&
                Objects.equals(orderStlmTm, that.orderStlmTm) &&
                Objects.equals(payAcct, that.payAcct) &&
                Objects.equals(payAcctProdCd, that.payAcctProdCd) &&
                Objects.equals(payBankName, that.payBankName) &&
                Objects.equals(payChannel, that.payChannel) &&
                Objects.equals(payCustEmail, that.payCustEmail) &&
                Objects.equals(payCustName, that.payCustName) &&
                Objects.equals(realFeeAmt, that.realFeeAmt) &&
                Objects.equals(recvAcct, that.recvAcct) &&
                Objects.equals(recvBankName, that.recvBankName) &&
                Objects.equals(recvBankOrderId, that.recvBankOrderId) &&
                Objects.equals(recvCustEmail, that.recvCustEmail) &&
                Objects.equals(recvCustName, that.recvCustName) &&
                Objects.equals(settleType, that.settleType) &&
                Objects.equals(terminalSource, that.terminalSource) &&
                Objects.equals(txnAmt, that.txnAmt) &&
                Objects.equals(txnPlace, that.txnPlace) &&
                Objects.equals(remark, that.remark) &&
                Objects.equals(refundFeeAmt, that.refundFeeAmt) &&
                Objects.equals(userSource, that.userSource) &&
                Objects.equals(totalOrderAmt, that.totalOrderAmt) &&
                Objects.equals(settleAmt, that.settleAmt) &&
                Objects.equals(orderFeePayer, that.orderFeePayer) &&
                Objects.equals(oldPayChannel, that.oldPayChannel) &&
                Objects.equals(transBatchNo, that.transBatchNo);
    }

    @Override
    public int hashCode() {
        return Objects.hash(gopayOrderId, createdTs, custOrderId, gopayIntTxnCd, gopayTxnTm, handleStaCd, lastUpdTs, orderStlmTm, payAcct, payAcctProdCd, payBankName, payChannel, payCustEmail, payCustName, realFeeAmt, recvAcct, recvBankName, recvBankOrderId, recvCustEmail, recvCustName, settleType, terminalSource, txnAmt, txnPlace, txnStaCd, version, remark, refundFeeAmt, userSource, totalOrderAmt, settleAmt, orderFeePayer, oldPayChannel, transBatchNo);
    }
}